<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <!-- <script>
    const student = {
      name: 'xiaowu',
      work: function () {
        console.log(this); // 指向调用者
        setTimeout(function () {
          console.log(this); // 指向全局对象
        }, 1000);
      }
    }

    student.work();

    const student2 = {
      name: 'xiaotian',
      play: function () {
        console.log(this); // 指向调用者
        setTimeout(() => {
          console.log(this); // 指向上一层作用域的this
        }, 1000);
      }
    }
  </script> -->
  <script>
    let obj = {
      name: "tom",
      age: 20,
      sayName: function () {
        console.log(this); // 指向调用者
        setTimeout(function () {
          console.log(this); // 指向全局对象，因为setTimeout是window的方法
        }, 1000);
        setTimeout(() => {
          console.log(this); // 指向上一层作用域的this，就是obj调用者
          // 箭头函数没有this，箭头函数会沿用上一层作用域的this
        }, 1500);
      }
    }

    obj.sayName();
  </script>
</body>

</html>